package com.zjsru.plan2024.oneday;

import java.util.Arrays;

/**
 * 2965. 找出缺失和重复的数字
 * @Author: cookLee
 * @Date: 2024-06-02
 */
public class FindMissingAndRepeatedValues {

    /**
     * 主
     * \
     * 输入：grid = [[1,3],[2,2]]
     * 输出：[2,4]
     * 解释：数字 2 重复，数字 4 缺失，所以答案是 [2,4] 。
     * \
     * 输入：grid = [[9,1,7],[8,9,2],[3,4,6]]
     * 输出：[9,5]
     * 解释：数字 9 重复，数字 5 缺失，所以答案是 [9,5] 。
     * \
     * @param args args
     */
    public static void main(String[] args) {
        FindMissingAndRepeatedValues findMissingAndRepeatedValues = new FindMissingAndRepeatedValues();
        int[][] grid = new int[][]{{1,3},{2,2}};
        System.out.println(Arrays.toString(findMissingAndRepeatedValues.findMissingAndRepeatedValues(grid)));
    }

    public int[] findMissingAndRepeatedValues(int[][] grid) {
        //第一位代表重复数字，第二位代表缺失的数字
        int[] ans = new int[2];
        //获取计算总长度
        int len = grid.length;
        int range = len * len;
        int[] count = new int[range + 1];
        for (int[] one : grid) {
            for (int number : one) {
                count[number]++;
            }
        }
        //不存在数字0的情况
        for (int i = 1; i <= range; i++) {
            if(count[i] == 2){
                ans[0] = i;
            }
            if(count[i] == 0){
                ans[1] = i;
            }
        }
        return ans;
    }
}
